1. Field of the Invention
This invention relates to firmware in a processor based system. In particular, the invention relates to multitasking in basic input and output system (BIOS).
2. Description of Related Art
To execute a program, a processor in a computer system has to access the executable code of the program from the memory. When the computer is first powered up, the processor usually executes the firmware which generally is the Basic Input and Output System (BIOS) program. The BIOS contains the executable code for a boot-up program. It is essentially a built-in software containing a set of instructions that control systems devices and test memory. Because it is typically stored in a Read-Only Memory (ROM) chip on the motherboard, it is sometimes call the ROM BIOS.
In a typical power up sequence, upon power up the processor xe2x80x9cwakes upxe2x80x9d and sends a message to activate the BIOS. When executed, the BIOS runs a series of tests, called the POST for Power On Self Test, to make sure the system devices are working correctly. In general, the BIOS initializes system hardware and chipset registers, initializes power management, tests RAM (Random Access Memory), enables the keyboard, tests serial and parallel ports, initializes floppy disk drives and hard disk drive controllers, and displays system summary information. During POST, the BIOS compares the system configuration data obtained from POST with the system information stored in a non-volatile memory, generally a CMOS (Complementary Metal-Oxide Semiconductor) memory chip located on the motherboard. This non-volatile memory chip, which is updated whenever new system components are added, contains the latest information about system components.
After the POST tasks are completed, the BIOS looks for the boot program responsible for loading the operating system. Usually, the BIOS looks on the floppy disk drive A followed by hard drive C. After being loaded into memory, the boot program then loads the system configuration information, typically contained in the registry in the operating system (OS) environment, and device drivers. Finally, the operating system is loaded, and, default programs in a start up directory or folder are executed.
The BIOS also helps operating systems and application programs manage the hardware by means of a set of routines called BIOS Run-Time Services. Application programs as well as the operating system can call these services to perform hardware-related functions.
The BIOS boot-up sequence typically takes some time to complete. Depending on the BIOS tasks, the type and speed of the processor, the BIOS boot-up time may vary from a few seconds to half a minute. During this time, the display typically shows system status information, summary of statistics, and results of the tests. Since most computer systems are functional and operational, the displayed information usually is not interesting. The BIOS boot-up sequence typically consists of a series of sequential tasks. These sequential tasks are mainly for internal tests and device initialization. During that time, the user is not provided useful or interesting information.
Therefore there is a need in the technology to provide a simple and efficient method to perform multitasking during BIOS boot-up.
The present invention is a method and apparatus to perform multitasking in a basic input and output system (BIOS). Interrupt signals are enabled at predetermined interrupt times. A first task is performed in response to the interrupt signals at the interrupt times. A second task is performed between the successive interrupt times.